package ru.st.selenium;

import org.testng.annotations.*;

import static org.junit.Assert.*;
import ru.st.selenium.model.EditFieldTypesObject;
import ru.st.selenium.model.TypesTable;
import ru.st.selenium.pages.TestBase;

public class CreateTypeTables extends TestBase {

	// BeforeMethod выполняется ПЕРЕД каждым тестовым методом в этом классе.
	@BeforeMethod
	public void MayBeLogout() {
		if (app.getUserHelper().isNotLoggedIn()) {
			return;
		}
		app.getUserHelper().logout();
	}

	// Add Create Types Table
	@Test
	public void AddCreateTypesTable() throws Exception {
		// Создаем набор тестовых данных (объект предметной области)
		TypesTable typestable = new TypesTable()
				.setTypesObjectName("SObject Типы таблиц" + " " + randomString(10));
		
		EditFieldTypesObject editfieldtypestable = new EditFieldTypesObject()
				// 1. СТРОКА
				.setNameFieldTypesObject("TСтрока")
				.setIdentifierFieldTypesObject("TSTROKA")
				// 2. ТЕКСТ
				.setNameFieldTypesObject1("TТекст")
				.setIdentifierFieldTypesObject1("TTEXT")
				// 3. ЦЕЛОЕ
				.setNameFieldTypesObject2("TЦелое")
				.setIdentifierFieldTypesObject2("TCHELOE")
				// 4. ВЕЩЕСТВЕННОЕ
				.setNameFieldTypesObject3("TВещественное")
				.setIdentifierFieldTypesObject3("TVESHESTVENNOE")
				// 5. ДАТА
				.setNameFieldTypesObject4("TДата")
				.setIdentifierFieldTypesObject4("TDATA")
				// 6. ФАЙЛ
				.setNameFieldTypesObject5("TФайл")
				.setIdentifierFieldTypesObject5("TFTLES")
				// 7. ССЫЛКА НА СПРАВОЧНИК
				.setNameFieldTypesObject6("TСсылка на спр-к")
				.setIdentifierFieldTypesObject6("TSSTLKA")
				// 8. МНОЖЕСТВЕННАЯ ССЫЛКА
				.setNameFieldTypesObject7("TМножественная ссылка")
				.setIdentifierFieldTypesObject7("TMNOJS")
				// 9. ЛОГИЧЕСКОЕ
				.setNameFieldTypesObject8("TЛогический")
				.setIdentifierFieldTypesObject8("TBOOLEAN")
				// 10. ТЕЛЕФОН
				.setNameFieldTypesObject9("TТелефон")
				.setIdentifierFieldTypesObject9("TPHONE")
				// 11. EMATL
				.setNameFieldTypesObject10("TEmail")
				.setIdentifierFieldTypesObject10("TEMATL")
				// 12. ИЗОБРАЖЕНИЕ
				.setNameFieldTypesObject11("TИзображение")
				.setIdentifierFieldTypesObject11("TTMAGES")
				// 13. ЦВЕТ
				.setNameFieldTypesObject12("TЦвет")
				.setIdentifierFieldTypesObject12("TCOLOR");

		// далее выше подготовленные тестовые данные используем
		app.getNavigationHelper().maximizeWindow();
		app.getUserHelper().loginAs(ADMIN);
		assertTrue(app.getUserHelper().isLoggedIn());
		app.getTypesObjectHelper().createTypesTable(typestable); // Добавление объекта - Типы Таблиц
																	
		app.getEditFieldsTypesObjectHelper().addFieldsTypesTableHelper(
				editfieldtypestable); // Добавление всех типов полей в объект - Типы Таблиц
		app.getTypesObjectHelper().verifyCreateObject(); // Проверка отображения
														// записи в гриде - Типы Таблицы
		app.getUserHelper().logout();
		assertTrue(app.getUserHelper().isNotLoggedIn());
	}

}
